set(src_dirs
            key
            bsp_nvs
            bsp_lvgl
            bsp_spiffs
            iic
            qmi8658
            pca9557
            sdio
            lcd
            rng
            camera
            cmd/cmd_i2ctools
            cmd/cmd_nvs
            cmd/cmd_system
            cmd/cmd_wifi
            cmd/cmd_user
            internal_temp_sensor
            audio
            )

set(include_dirs
            key
            bsp_nvs
            bsp_lvgl
            bsp_spiffs
            iic
            qmi8658
            pca9557
            sdio
            lcd
            rng
            camera
            cmd/cmd_i2ctools
            cmd/cmd_nvs
            cmd/cmd_system
            cmd/cmd_wifi
            cmd/cmd_user
            internal_temp_sensor
            audio
            )

set(requires
            driver
            fatfs
            spiffs
            esp_adc
            console
            nvs_flash
            newlib
            esp_adc
            esp_lcd
            spi_flash
            lvgl__lvgl
            esp_timer
            esp_wifi
            espressif__button
            espressif__esp32-camera
            espressif__esp_lvgl_port
            espressif__esp_lcd_touch_ft5x06
            chmorgan__esp-audio-player
            chmorgan__esp-file-iterator
            chmorgan__esp-libhelix-mp3
            espressif__esp_codec_dev
            )

idf_component_register(SRC_DIRS ${src_dirs} INCLUDE_DIRS ${include_dirs} REQUIRES ${requires})

component_compile_options(-ffast-math -O3 -Wno-error=format=-Wno-format)